import 'package:freezed_annotation/freezed_annotation.dart';

// 必要的：关联 `main.dart` 到 Freezed 代码生成器
part 'decode_model.freezed.dart';

// 可选的：因为 Person 类是可序列化的，所以我们必须添加这一行。
// 但是如果 Person 不是可序列化的，我们可以跳过它。
part 'decode_model.g.dart';

@unfreezed
class WxDecodeProgress with _$WxDecodeProgress {
  factory WxDecodeProgress({
    /// 总文件数
    @Default(0) int total,

    /// 当前执行下标，从1开始
    @Default(0) int current,

    /// 打印输出
    @Default('') String printout,

    /// 是否完成
    @Default(true) bool isComputed,
  }) = _WxDecodeProgress;

  /// 将 JSON 对象转换为 [WxDecodeProgress] 实例。
  /// 这可以实现 API 响应的类型安全读取。
  factory WxDecodeProgress.fromJson(Map<String, dynamic> json) => _$WxDecodeProgressFromJson(json);
}
